package com.academic_system.service;

import com.academic_system.model.MarkCondition;
import com.academic_system.model.MarkCount;
import com.academic_system.util.Message;
import com.academic_system.util.Msg;
import org.springframework.stereotype.Service;

/**
 * @author 20155884 王晓阳
 * @className : MarkService
 * @Description
 **/
@Service
public interface MarkService {

    Message findStuIdByMark(String courseName);

    /**
     * @author 20155884 王晓阳
     * @methodName :selectMark
     * @Description 动态查询成绩。
     **/
    //Msg<MarkCondition> selectMark(MarkCondition markCondition);
    Message selectMark(MarkCondition markCondition);

    /**
     * @param markCondition
     * @Description 根据学生id查找学生总学分
     * @author 20155884 王晓阳
     * @methodName selectourseCredithour
     * @returnType Msg
     **/
    Message selectCourseCredithour(MarkCondition markCondition);

    /**
     * @param term_id
     * @Description 在courseterm表中按学期查询本学期所有课程的总学分
     * @author 20155884 王晓阳
     * @methodName findTotalCourseCredithour
     * @returnType Msg
     **/
    int findTotalCourseCredithour(int term_id);

    /**
     * @param markCondition
     * @Description 查询学生的总学分
     * @author 20155884 王晓阳
     * @methodName findStuCredithour
     * @returnType Msg
     **/
     Message findStuCredithour1(MarkCondition markCondition);

    /**
     * @param
     * @Description
     * @author 20155884 王晓阳
     * @methodName addMark
     * @returnType void
     **/
    Message addMark(MarkCondition markCondition);

    /**
     * @param markCondition
     * @Description 通过成绩id修改成绩
     * @author 20155884 王晓阳
     * @methodName updateMarkByMarkId
     * @returnType void
     **/
    Message updateMarkByMarkId(MarkCondition markCondition);

    /**
     * @param markCondition
     * @Description d查询不及格成绩的个数
     * @author 20155884 王晓阳
     * @methodName findFailGradeCount
     * @returnType Msg
     **/
    Message findFailGradeCount(MarkCondition markCondition);

    /**
     * @param markCondition
     * @Description 查询不及格成绩按学科查，按学号查，按学期查
     * @author 20155884 王晓阳
     * @methodName selectFallGrade
     * @returnType List
     **/
    Message selectFallGrade(MarkCondition markCondition);

    /**
     * @param
     * @Description 按学期和课程id查询在mark表不在学生表中的学生信息，即查询没有录成绩的学生个数
     * @author 20155884 王晓阳
     * @methodName
     * @returnType
     **/
    Msg<MarkCondition> queryNoScoreStudent(MarkCondition markCondition);

    /**
     * @param
     * @Description 根据学期id，courseid coursename 查询课程
     * @author 20155884 王晓阳
     * @methodName
     * @returnType
     **/
    Message findCourseTerm(MarkCondition markCondition);

    /**
     * @param
     * @Description 更新courseterm状态
     * @author 20155884 王晓阳
     * @methodName
     * @returnType
     **/
    Message updateCoursetermState(MarkCondition markCondition);

    /**
     * @param
     * @Description 查询各分数段的学生人数
     * @author 20155884 王晓阳
     * @methodName
     * @returnType
     **/
    Message selectMarkCount(MarkCount markCount);
}
